package com.tbit.uqbike.service.business;


import com.tbit.uqbike.object.pojo.ParkPointApply;

import java.util.Date;
import java.util.List;

/**
 * 停车点申请service
 *
 * @author Leon
 * 2017年2月24日 下午4:09:17
 */
public interface ParkPointApplyService {
    /**
     * 添加
     *
     * @param parkPointApply
     */
    void insert(ParkPointApply parkPointApply);

    /**
     * 根据申请id查询
     *
     * @param parkPointApplyId
     * @return
     */
    ParkPointApply getByParkPointApplyId(Integer parkPointApplyId);

    /**
     * 处理
     *
     * @param parkPointApply
     */
    void handle(ParkPointApply parkPointApply);

    /**
     * 查询总数
     *
     * @param params
     * @return
     */
    Integer queryCount(List<Integer> accountIdList, Integer state, Long startTime, Long endTime, String phone);

    /**
     * 分页查询
     *
     * @param params
     * @return
     */
    List<ParkPointApply> queryPage(List<Integer> accountIdList, Integer state, Long startTime, Long endTime,
                                   Integer rowCount, Integer pageNO, String sortName, String phone);

    /**
     * 审核通过附近的站点
     *
     * @param parkPointApply
     */
    void handleNearBy(ParkPointApply parkPointApply);

    /**
     * 所有所有区域的站点审核
     * @param accountIds 区域idl列表
     * @param type 类型
     * @return int
     */
    int queryCountIds(List<Integer> accountIds, int type, Date startTime, Date endTime);

    /**
     * 根据用户id和区域id集合查询
     *
     * @param userId        用户id
     * @param accountIdList 区域id集合
     * @param startTime     开始时间
     * @param endTime       结束时间
     */
    List<ParkPointApply> selectList(Integer userId, List<Integer> accountIdList, Date startTime, Date endTime);
}